This can create some bad situations because it allows you to 'starve' your I/O by making a recursive process.nextTick() calls, which prevents the event loop from reaching the poll phase.
Allow users to handle errors, clean up any unneeded resources, or perhaps try the request again before the event loop continues.
At times it's necessary to allow a callback to run after the call stack has unwound but before the event loop continues.